package com.cskaoyan.javase.oop1._8game._1pvz;

/**
 * 植物类
 * 植物类对象需要和僵尸类对象之间产生交互,共同完成程序的功能
 *  为了交互方便
 *  可以选择将僵尸类对象的引用作为自身对象的成员变量持有
 * 植物类和僵尸类需要互相持有引用,方便进行交互
 *
 * @since 11:11
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Plant {
    /*
        属性
     */
    String name;
    int hp;
    int damage;
    double price;

    // 持有僵尸对象的引用作为成员变量
    Zombie plantZ;

    /*
        行为
     */

    // 攻击需要知道攻击的僵尸的名字
    public void attack() {
        System.out.println(name + "正在攻击" + plantZ.name);
    }

    // 被攻击
    public void beAttacked() {
        System.out.println(name + "被" + plantZ.name + "攻击了,还剩下" + (hp - plantZ.damage) + "点血量!");
    }

    // 种植
    public void planting() {
        System.out.println("花费了" + price + "个太阳,种植了" + name);
    }

    // 构造器

    public Plant() {
    }

    public Plant(String name, int hp, int damage, double price) {
        this.name = name;
        this.hp = hp;
        this.damage = damage;
        this.price = price;
    }
}
